home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / hamrad3.arc / MATCH.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  2.2 KB  |  72 lines

  1. 100  CLS :REM "MATCH"
  2. 110  PRINT TAB(33);"****MATCH****"
  3. 120  PRINT :PRINT "THIS PROGRAM CALCULATES THE PARAMETERS OF A TRANSMISSION REQUIRED TO MATCH TWO  REAL OR COMPLEX LOADS."
  4. 130  PRINT :PRINT TAB(24);"SERIES SOURCE DATA  R +/-JX"
  5. 140  PRINT :BEEP :INPUT "ENTER REAL TERM             ";R(1)
  6. 150  PRINT :BEEP :INPUT "ENTER J TERM, IF 0 ENTER 0  ";X(1)
  7. 160  PRINT :PRINT TAB(24);"SERIES LOAD IMPEDANCE DATA  R =/-JX"
  8. 170  PRINT :BEEP :INPUT "ENTER REAL TERM             ";R(2)
  9. 180  PRINT :BEEP :INPUT "ENTER J TERM, IF 0 ENTER 0  ";X(2)
  10. 190  PI=4*ATN(1)
  11. 200  IF R(1)<>R(2) THEN 250
  12. 210  IF X(1)<>0 THEN 730
  13. 220  IF X(2)<>0 THEN 730
  14. 230  Z=SQR(R(1)*R(2))
  15. 240  T=90 :GOTO 420
  16. 250  K7=((R(1)^2+X(1)^2)*R(2)-(R(2)^2+X(2)^2)*R(1))/(R(1)-R(2))
  17. 260  IF K7<0 THEN 730
  18. 270  Z=SQR(((R(1)^2+X(1)^2)*R(2)-(R(2)^2+X(2)^2)*R(1))/(R(1)-R(2)))
  19. 280  IF X(1)<>0 THEN 330
  20. 290  IF X(2)<>0 THEN 310
  21. 300  T=90 :GOTO 370
  22. 310  C=Z*(R(2)-R(1))/(X(1)*R(2)-X(2)*R(1))
  23. 320  GOTO 340
  24. 330  C=Z*(R(1)-R(2))/(X(1)*R(2)-X(2)*R(1))
  25. 340  T=ATN(C) :Z=INT(Z*100)/100
  26. 350  T=T*(180/PI) :IF T>0 THEN 370
  27. 360  T=T+180
  28. 370  L=T/360 :L=INT(L*1000)/1000
  29. 380  IF X(1)<0 THEN 400
  30. 390  A$="+" :GOTO 410
  31. 400  A$="-"
  32. 410  IF X(2)<0 THEN 430
  33. 420  B$="+" :GOTO 440
  34. 430  B$="-"
  35. 440  CLS :PRINT TAB(31);"Z line =";Z;"ohms"
  36. 450  PRINT :PRINT TAB(10);"--------------------";TAB(50);"--------------------"
  37. 460  PRINT TAB(30);"|";TAB(49);"|"
  38. 470  PRINT TAB(30);"|";TAB(49);"|"
  39. 480  PRINT TAB(30);"--------------------"
  40. 490  PRINT TAB(31);"LENGTH =";L;"Lg"
  41. 500  PRINT TAB(30);"--------------------"
  42. 510  PRINT TAB(30);"|";TAB(49);"|"
  43. 520  PRINT TAB(18);"Zin =";TAB(30);"|";TAB(49);"|";TAB(58);"Zout ="
  44. 530  PRINT TAB(10);"--------------------";TAB(50);"--------------------"
  45. 540  PRINT TAB(18);R(1);A$;"J";ABS(X(1));TAB(58);R(2);B$;"J";ABS(X(2))
  46. 550  PRINT :PRINT "NOTE: Lg IS THE GUIDED WAVELENGTH OF THE LINE USED."
  47. 560  PRINT :PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED?  (Y/N)"
  48. 570  P$=INKEY$ :IF P$="" THEN 570
  49. 580  IF P$="Y" THEN 600
  50. 590  IF P$<>"N" THEN 570 ELSE 720
  51. 600  LPRINT TAB(35);"Z line=";Z;"ohms"
  52. 610  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
  53. 620  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
  54. 630  LPRINT TAB(30);CHR$(245);TAB(50);CHR$(245)
  55. 640  GOSUB 800
  56. 650  LPRINT TAB(35);"LENGTH =";L;"Lg"
  57. 660  GOSUB 800
  58. 670  LPRINT TAB(10);"Zin =";R(1);A$;" J";ABS(X(1));TAB(30);CHR$(245);
  59. 680  LPRINT TAB(50);CHR$(245);TAB(55);"Zout =";R(2);B$;" J";ABS(X(2))
  60. 690  GOSUB 780
  61. 700  GOSUB 790
  62. 710  LPRINT :LPRINT "NOTE: Lg IS THE GUIDED WAVELENGTH OF THE LINE USED."
  63. 720  GOTO 740
  64. 730  PRINT :PRINT "MATCH NOT REALIZABLE"
  65. 740  PRINT :BEEP :PRINT "CONTINUE?  (Y/N)"
  66. 750  C$=INKEY$ :IF C$="" THEN 750
  67. 760  IF C$="Y" THEN 770 ELSE END
  68. 770  CLS :GOTO 130
  69. 780  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
  70. 790  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
  71. 800  FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U :RETURN
  72.